package com.ruoyi.post.mapper;

import com.ruoyi.post.domain.PostFavoriteRecord;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 帖子收藏记录Mapper接口
 *
 * @author 区嘉盛
 * @date 2025-06-10
 */
public interface PostFavoriteRecordMapper {

    /**
     * 查询帖子收藏记录
     * 
     * @param id 帖子收藏记录主键
     * @return 帖子收藏记录
     */
    public PostFavoriteRecord selectPostFavoriteRecordById(Long id);

    /**
     * 查询用户对帖子的收藏记录
     * 
     * @param postId 帖子ID
     * @param userId 用户ID
     * @return 收藏记录
     */
    public PostFavoriteRecord selectPostFavoriteRecordByPostAndUser(@Param("postId") Long postId, @Param("userId") Long userId);

    /**
     * 新增帖子收藏记录
     * 
     * @param postFavoriteRecord 帖子收藏记录
     * @return 结果
     */
    public int insertPostFavoriteRecord(PostFavoriteRecord postFavoriteRecord);

    /**
     * 更新帖子收藏记录
     * 
     * @param postFavoriteRecord 帖子收藏记录
     * @return 结果
     */
    public int updatePostFavoriteRecord(PostFavoriteRecord postFavoriteRecord);

    /**
     * 删除帖子收藏记录
     * 
     * @param id 帖子收藏记录主键
     * @return 结果
     */
    public int deletePostFavoriteRecordById(Long id);

    /**
     * 查询用户收藏的帖子列表
     * 
     * @param userId 用户ID
     * @return 收藏记录列表
     */
    public List<PostFavoriteRecord> selectFavoritesByUserId(Long userId);

    /**
     * 统计帖子收藏数
     *
     * @param postId 帖子ID
     * @return 收藏数量
     */
    public int countFavoritesByPostId(Long postId);
}